package com.cloudkinto.utils;

import com.cloudkinto.common.common.FileUtils;
import org.apache.commons.io.IOUtils;

import java.io.File;
import java.io.IOException;
import java.io.InputStream;

public class ResourceUtils {
    //此路径是其他方法进行调用，且只需要加载一次　　 private static String sourceTemplatePath;　　// 模板文件名称 位于 resource/static/template下面
    private static String[] ftlArray = {"pickup_temp3.ftl", "rakuten_confirm_4.ftl", "rakuten_sendout_4.ftl"};

    static {
        //静态方法调用一次　
        createFtlFileByFtlArray();
    }

    private static String createFtlFileByFtlArray() {
        String ftlPath = "templates/";
        String path = "";
        for (int i = 0; i < ftlArray.length; i++) {
            path = createFtlFile(ftlPath, ftlArray[i]);
            if (null == path) {

            }
        }
        return path;
    }

    private static String createFtlFile(String ftlPath, String ftlName) {
        try {//获取当前项目所在的绝对路径
            String proFilePath = System.getProperty("user.dir");
//获取模板下的路径　
            String newFilePath = proFilePath + File.separator + "src" + File.separator + "main" + File.separator + "resources" + File.separator + ftlPath;
            newFilePath = newFilePath.replace("/", File.separator);
            File newFile = new File(newFilePath + ftlName);
            if (newFile.isFile() && newFile.exists()) {
                return newFilePath;
            } //当项目打成jar包会运行下面的代码，并且复制一份到src路径下（具体结构看下面图片）　　　　　　　　
            InputStream certStream = Thread.currentThread().getContextClassLoader().getResourceAsStream(ftlPath + ftlName);
            byte[] certData = IOUtils.toByteArray(certStream);
            FileUtils.writeByteArrayToFile(newFile, certData);
            return newFilePath;
        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }
}